課程資訊
課程名稱
物件導向程式設計
OBJECT-ORIENTED SOFTWARE DESIGN 
開課學期
96-2 
授課對象
資訊工程學系  
授課教師
陳俊良 
課號
CSIE1211 
課程識別碼
902 10730 
班次
01 
學分
全/半年
半年 
必/選修
必帶 
上課時間
星期一3,4(10:20~12:10)星期四5(12:20~13:10) 
上課地點
資101資101 
備註
限學號單號 且 限本系所學生(含輔系、雙修生)
總人數上限:80人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/962oop 
課程簡介影片
 
核心能力關聯
核心能力與課程規劃關聯圖
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

本網頁為班次01以及02共用。
01班上課時間調整為週一10:20~11:35週四12:55~14:10
02班上課時間調整為週一12:55~14:10週四10:20~11:35

如何成為一個程式設計師 (programmer)?第一、要懂語言 (language);第二、要懂程式 (program)。語言指的是語法、功能等等。比如,C語言if敘述的條件要用小刮號刮起來,就是語法。C語言的 * 和 & 有很多效果,就是功能。程式指的是程式設計師用語言表達出來的軟體。如何成為一個好的程式設計師?除了上述之外,還要會構思軟體。
早先的程式語言以及軟體構思方法大概都是程序導向 (procedural-oriented) 的,比如C語言。後期才有物件導向 (object-oriented) 的概念。比較新的語言,比如Java和C#,都是歸屬於物件導向。過去的經驗證明物件導向的觀念與作法易於開發維護大型軟體。
物件導向的概念並不是說非得用物件導向語言來表達。假如我們喜歡,是可以用物件導向的概念來構思一個軟體系統,然後用程序導向的語言實作出來,只不過將會很累。那麼物件導向語言有何特點?其特點為,當我們利用物件導向語言來撰寫程式時,容易表達出一些大家認同的物件導向大概念,比如抽象 (abstraction)、封裝 (encapsulation)、繼承 (inheritance)、多型 (polymorphism) 等。當我們利用物件導向語言來表達程式的意圖時,因為物件導向語言的文法等規範,會驅使我們寫出隱含物件導向概念的軟體。
本課程目的在於讓修課同學理解物件導向的概念,熟悉物件導向語言,以建立將來撰寫大型物件導向程式的基礎。 

課程目標
本課程的目標在於讓修課同學:
理解物件導向的概念,比如抽象、封裝、繼承、多型等。
熟悉一個物件導向語言的語法和功能。本課程以Java語言為主,C# 語言為輔。
有能力利用物件導向語言表達出物件導向的概念。比如利用Java語言的關鍵字extends表達出繼承的概念。
有能力遵循物件導向概念構思一個小規模的程式,進而有能力利用物件導向語言實作該程式。
有能力翻閱物件導向語言的API,進而有能力引用API來協助物件導向程式的開發。 
課程要求
 
預期每週課後學習時數
 
Office Hours
每週一 11:40~12:50
每週四 11:40~12:50 
指定閱讀
 
參考書目
K. Sierra and B. Bates, Head First Java, 2nd Ed., O’Reilly, 2005.
K. Arnold, J. Gosling and D. Holmes, The Java Programming Language, 4th Ed.,
Addison-Wesley, 2006. 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
期中考 
33% 
暫訂 
2. 
期末考 
33% 
暫訂 
3. 
作業 
34% 
暫訂 
 
課程進度
週次
日期
單元主題